'use strict';

/**
 * MySQL表结构定义
 * 本文件定义了系统使用的MySQL表结构
 * 格式: { 
 *   表名: {
 *     字段名: '字段定义',
 *     ...
 *   }
 * }
 */
module.exports = {
  users: {
    id: 'INT AUTO_INCREMENT PRIMARY KEY', //'用户ID，主键'
    pid: 'CHAR(28) NOT NULL UNIQUE COMMENT "本系统的用户id"',
    openid: 'CHAR(50) NOT NULL UNIQUE COMMENT "用户的唯一标识（OpenID）"',
    platform: 'VARCHAR(10) DEFAULT NULL COMMENT "平台：wx/qq/..."',
    unionid: 'VARCHAR(50) DEFAULT NULL COMMENT"用户在开放平台的唯一标识符"',
    nickName: 'VARCHAR(50) DEFAULT NULL COMMENT"用户名（可选，唯一标识）"',
    fullName: 'VARCHAR(60) DEFAULT NULL COMMENT "平台+nickname"',
    passwordHash: 'VARCHAR(255) DEFAULT NULL COMMENT "密码哈希值，加密存储"',
    avatarUrl: 'VARCHAR(255) DEFAULT NULL COMMENT "头像链接"',
    gender: 'ENUM("0", "1", "2") DEFAULT "0" COMMENT "性别：未知0/男性1/女性2"',
    language: 'VARCHAR(10) DEFAULT NULL COMMENT"语言:en/zh_CN/zh_TW"',
    realName: 'VARCHAR(50) DEFAULT NULL COMMENT "真实姓名"',
    idCardNumber: 'VARCHAR(20) DEFAULT NULL COMMENT "身份证号"',
    phoneNumber: 'VARCHAR(20) DEFAULT NULL COMMENT "手机号码，唯一"',
    email: 'VARCHAR(255) DEFAULT NULL COMMENT "邮箱地址，唯一"',
    dateOfBirth: 'DATE DEFAULT NULL COMMENT "出生日期，格式：YYYY-MM-DD"',
    country: 'VARCHAR(100) DEFAULT NULL COMMENT "国家"',
    province: 'VARCHAR(100) DEFAULT NULL COMMENT "省/州"',
    city: 'VARCHAR(100) DEFAULT NULL COMMENT "城市"',
    addressLine1: 'VARCHAR(255) DEFAULT NULL COMMENT "地址行1（街道地址）"',
    addressLine2: 'VARCHAR(255) DEFAULT NULL COMMENT "地址行2（如楼号、单元号）"',
    lastLoginAt: 'TIMESTAMP NULL DEFAULT NULL COMMENT "最后登录时间"',
    createdAt: 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间"',
    INDEXES: [
      'UNIQUE INDEX idx_pid (pid)',
      'INDEX idx_openid (openid)',
    ]
  },
};